---
title: WorldRenderUtils 世界渲染工具
icon: Globe
relatedFile: app/src/core/render/canvas2d/utilsRenderer/WorldRenderUtils.tsx
---

用于渲染图形，这些渲染的参数都是 World 坐标系下的。这个服务封装了多种图形的渲染逻辑，包括曲线、矩形和一些特殊效果，并处理了从 World 坐标系到 View 坐标系的转换以及基于相机缩放的尺寸调整。

## API

### `renderCubicCatmullRomSpline(spline: CubicCatmullRomSpline, color: Color, width: number): void`

绘制一条 Catmull-Rom 样条线。

-   `spline`: 要绘制的 Catmull-Rom 样条线对象。
-   `color`: 曲线的颜色。
-   `width`: 曲线的宽度。

### `renderBezierCurve(curve: CubicBezierCurve, color: Color, width: number): void`

绘制一条贝塞尔曲线。

-   `curve`: 要绘制的贝塞尔曲线对象。
-   `color`: 曲线的颜色。
-   `width`: 曲线的宽度。

### `renderSymmetryCurve(curve: SymmetryCurve, color: Color, width: number): void`

绘制一条对称曲线。

-   `curve`: 要绘制的对称曲线对象。
-   `color`: 曲线的颜色。
-   `width`: 曲线的宽度。

### `renderLaser(start: Vector, end: Vector, width: number, color: Color): void`

绘制激光效果。如果起点和终点相同，则绘制一个棱柱块作为闪光点。否则，绘制一条实线作为激光。

-   `start`: 激光的起始点。
-   `end`: 激光的结束点。
-   `width`: 激光的宽度。
-   `color`: 激光的颜色。

### `renderPrismaticBlock(centerLocation: Vector, radius: number, color: Color, strokeColor: Color, strokeWidth: number): void`

绘制一个棱柱块。

-   `centerLocation`: 棱柱块的中心位置。
-   `radius`: 棱柱块的半径。
-   `color`: 棱柱块的填充颜色。
-   `strokeColor`: 棱柱块的描边颜色。
-   `strokeWidth`: 棱柱块的描边宽度。

### `renderRectangleFlash(rectangle: Rectangle, shadowColor: Color, shadowBlur: number, roundedRadius = 0): void`

绘制一个带有阴影的矩形闪光效果。

-   `rectangle`: 要绘制的矩形对象。
-   `shadowColor`: 阴影的颜色。
-   `shadowBlur`: 阴影的模糊程度。
-   `roundedRadius`: 矩形的圆角半径，默认为 0。

### `renderCuttingFlash(start: Vector, end: Vector, width: number, shadowColor: Color): void`

绘制一个切割闪光效果，表现为从起点到终点的箭头状闪光。

-   `start`: 切割闪光的起始点。
-   `end`: 切割闪光的结束点。
-   `width`: 切割闪光的宽度。
-   `shadowColor`: 阴影的颜色。
